/**
 * SysWork.java -- 2017-10-26 10:04:26
 * 作者：欧增奇 -- 代码生成器自动生成
 * 联系方式：425752797@qq.com
 * http://www.ouzengqi.com/
 */
package com.ozq.sys.dao.mapper;

import java.util.List;
import java.util.Map;

import com.ozq.sys.dao.entity.SysWork;

/**
 * <作品表类接口> <功能详细描述>
 * 
 * @author 欧增奇
 * @version [V2.0, 2017-10-26 10:04:26]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface SysWorkMapper
{
    /** -----------------------------统计-方法（3个）----------------------------- **/
    /**
     * 统计所有的记录数
     * 
     * @return int
     */
    int countAll();

    /**
     * 按照条件精确统计作品表
     * 
     * @param sysWork
     * @return int
     */
    int countBy(SysWork sysWork);

    /**
     * 按照条件模糊统计作品表
     * 
     * @param sysWork
     * @return int
     */
    int countLike(SysWork sysWork);

    /** -----------------------------添加-方法（3个）----------------------------- **/
    /**
     * 插入作品表
     * 
     * @param sysWork
     */
    void insert(SysWork sysWork);

    /**
     * 插入作品表集合
     * 
     * @param sysWork
     */
    void insertList(List<SysWork> sysWorks);

    /**
     * 批量插入作品表，当id存在更新这条数据，不存在插入这条数据（注意：会影响所有字段）
     * 
     * @param sysWorks
     */
    void insertUpdateList(List<SysWork> sysWorks);

    /** -----------------------------更新-方法（2个）----------------------------- **/
    /**
     * 修改作品表，注意（id不能为空，否则修改失败）
     * 
     * @param sysWork
     */
    void update(SysWork sysWork);

    /**
     * 批量修改作品表，注意（id不能为空，否则修改失败，数据库必须连接必须设置为：&allowMultiQueries=true）
     * 
     * @param sysWorks
     */
    void updateList(List<SysWork> sysWorks);

    /** -----------------------------删除-方法（4个）----------------------------- **/
    /**
     * 作品表指定id删除
     * 
     * @param workId
     */
    void deleteById(Integer workId);

    /**
     * 作品表批量删除指定ids
     * 
     * @param workId
     */
    void deleteByIds(List<Integer> workIds);

    /**
     * 按照条件精确删除作品表（注意：当条件为空会删除所有记录）
     * 
     * @param sysWork
     */
    void deleteBy(SysWork sysWork);

    /**
     * 按照条件模糊删除作品表（注意：当条件为空会删除所有记录）
     * 
     * @param sysWork
     */
    void deleteLike(SysWork sysWork);

    /** -----------------------------查询-方法（5个）----------------------------- **/
    /**
     * 按照id查询作品表
     * 
     * @param workId
     * @return sysWork
     */
    SysWork selectById(Integer workId);

    /**
     * 按照ids查询作品表
     * 
     * @param workIds
     * @return sysWork集合
     */
    List<SysWork> selectByIds(List<Integer> workIds);

    /**
     * 按照条件精确查询作品表返回集合方法
     * 
     * @param sysWork
     * @return sysWork集合
     */
    List<SysWork> listBy(SysWork sysWork);

    /**
     * 按照条件模糊查询作品表返回集合方法
     * 
     * @param sysWork
     * @return sysWork集合
     */
    List<SysWork> listLike(SysWork sysWork);

    /**
     * 自定义查询sql，注意严禁执行除查询以外的语句（是不推荐这样执行处理的）
     * 
     * @param sql语句
     * @return map集合
     */
    @Deprecated
    List<Map<String, Object>> selectCustom(String selectSQL);
}